using Abp.Application.Services.Dto;
using SOEI.Solution.Customized;

namespace SOEI.Solution.DomainEntities.Organization.Dtos
{
    /// <summary>
    /// OrganiPerson的列表DTO
    /// <see cref=""/>
    /// </summary>
    public class OrganiPersonListDto : AuditedEntityDto<long?>
    {
        /// <summary>
        /// 字段Name
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 字段Sex
        /// </summary>
        public EPersonSex Sex { get; set; }

        /// <summary>
        /// 字段PhoneNumber
        /// </summary>
        public string PhoneNumber { get; set; }

        /// <summary>
        /// 字段IDNumber
        /// </summary>
        public string IDNumber { get; set; }

        /// <summary>
        /// 字段CertificateCode
        /// </summary>
        public string CertificateCode { get; set; }

        /// <summary>
        /// 字段JGBH
        /// </summary>
        public string JGBH { get; set; }

        /// <summary>
        /// 字段OrganizeID
        /// </summary>
        public long OrganizeID { get; set; }

        /// <summary>
        /// 字段Remark
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 字段ApplyStatus
        /// </summary>
        public EApplyStatus ApplyStatus { get; set; }

        /// <summary>
        /// 字段DataStatus
        /// </summary>
        public EDataStatus DataStatus { get; set; }

        /// <summary>
        /// 字段ApprovalStatus
        /// </summary>
        public EApprovalStatus ApprovalStatus { get; set; }

        /// <summary>
        /// 用户类型
        /// </summary>
        public string PersonType { get; set; }

        /* 这里创建自己的代码 */

        /// <summary>
        /// 用户类型名称
        /// </summary>
        public string PersonTypeName { get; set; }

        /// <summary>
        /// 【性别】枚举名称
        /// </summary>
        public string SexName
        {
            get
            {
                switch (this.Sex)
                {
                    case EPersonSex.Female:
                        return "女";
                    case EPersonSex.Male:
                        return "男";
                    default:
                        return string.Empty;
                }
            }
        }

        /// <summary>
        /// 【审核状态】枚举名称
        /// </summary>
        public string ApprovalStatusName
        {
            get
            {
                switch (this.ApprovalStatus)
                {
                    case EApprovalStatus.WaitSubmit:
                        return "待提交";
                    case EApprovalStatus.WaitReview:
                        return "待审核";
                    case EApprovalStatus.Reviewed:
                        return "已审核";
                    case EApprovalStatus.Invalid:
                        return "已注销";
                    case EApprovalStatus.Reviewing:
                        return "审核中";
                    case EApprovalStatus.WaitConfirm:
                        return "待确认";
                    default:
                        return string.Empty;
                }
            }
        }

    }
}